//创建一个axios实例
let service=axios.create();

/**
 * axios 模拟post表单提交
 * @param url 接口地址
 * @param data 数据，
 * 注：此函数会将data对象序列化为 key1=value1&key2=value2... 这种形式
 * @returns {Promise<unknown>}
 */
function requestPostForm(url,data){
    //创建一个promise对象
    let p=new Promise(function (resolve,reject) {
    let str="";
    if(data){
        for(let key in data){
            str+=(key+"="+data[key]+"&")
        }
    }
    //模拟表单提交
    //post请求
    service.post("/login",str,{
            headers: {
                "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
            }
        }).then((resp)=>{
           //将promise修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise修改为失败状态
            reject(err);
        });
    });
    //返回此promise对象
    return p;
}
/**
 * axios做post请求，注：请求体中的数据为json格式
 * @param url 接口地址
 * @param data 请求体参数
 */
function requestPost(url,data){
    //创建一个promise对象
    let p = new Promise(function (resolve,reject) {
        //发起post请求
        service.post(url,data).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });

    return p;
}
/**
 * axios 做get请求
 * @param url 接口地址
 * @param params 请求参数
 */
function requestGet(url,params){
    //创建一个promise对象
    let p = new Promise(function (resolve,reject) {
        //发起get请求
        service.get(url,{
            //get请求参数传递和post有点不一样
            params:params
        }).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });

    return p;
}
/**
 * axios 做delete请求
 * @param url 接口地址
 * @param params 请求参数
 */
function requestDelete(url,params){
    //创建一个promise对象
    let p = new Promise(function (resolve,reject) {
        //发起delete请求
        service.delete(url,{
            //get请求参数传递和post有点不一样
            params:params
        }).then((resp)=>{
            //将promise对象修改为成功状态
            resolve(resp.data);
        }).catch((err)=>{
            //将promise对象修改为失败状态
            reject(err);
        })
    });

    return p;
}

